package br.unisul.redeNeural;

/**
 * Classe para realizar um teste de parada.
 * @author Joelson Fernandes
 *
 */
public class Iteracoes implements TesteParada, java.io.Serializable{

	/**
	 * 
	 */
	private static final long serialVersionUID = 2319875358697753235L;

	/**
	 * Quantidade de iteracoes
	 */
	private int iteracoes;

	/**
	 * conta as iteracoes já feitas
	 */
	private int conta;

	/**
	 * Cria iteracoes
	 * @param iteracoes - quantidade de iteracoes
	 */
	public Iteracoes(int iteracoes) {
		super();
		this.iteracoes = iteracoes;
		this.conta = 0;
	}

	/**
	 * Incrementa as iteracoes já feitas
	 */
	public void incrementar(){
		conta++;
	}

	/**
	 * Incrementa as iteracoes ja feitas
	 * @param valor - quantidade a ser incrementada
	 */
	public void incrementar(int valor){
		conta+=valor;
	}

	/**
	 * O metodo incrementa automaticamento o numero de iteracoes<br>
	 * e verifica se o numero de iteracoes realizadas nao é superior
	 * ao numero de itercoes desejada.<br>
	 * @return <code>true</code> - caso o numero de iteracoes realizadas seja superior ao desejado 
	 */
	public boolean virificarPara() {
		incrementar();
		return conta > iteracoes;
	}

}
